;-----------------------------------------
;       PicOS Project
;
;       HEPIA 2014 - Florent Gluck
;
;       Denis Voirol            Pierre Kiss
;       Ruben Magnin            Alina Stanculescu
;       Sebastien Beureux       Julien Cornut
;-----------------------------------------
;
;       div_asm.s
;
;	ASM handler for division and modulo
;
;-----------------------------------------


.global _divide
.global _modulo

;------------------------------------------------------------------------------
; Fonction qui renvoie le resultat d'une division de a par b:
; int divide(uint a, uint b)
_divide:
	push bp
	mov bp, sp
	;---------------
        mov dx, #0
	mov ax, [bp+4]
	mov bx, [bp+6]
	div bx		;divise ax par bx
	;---------------
	pop bp
        ret

;------------------------------------------------------------------------------
; Fonction qui renvoie le reste d'une division de a par b:
; int modulo(uint a, uint b)

_modulo:
        push bp
        mov bp, sp
        ;---------------
        mov dx, #0
        mov ax, [bp+4]
        mov bx, [bp+6]
        div bx          ;divise ax par bx
	mov ax, dx
        ;---------------
        pop bp
        ret

